As a conventional technique relating to a storage system, there is proposed a storage system that assigns control of virtual storage segments among multiple controllers (for example, see Japanese Laid-Open Patent Publication No. 2005-222539).
As a method for connecting a target (disk) and an initiator (disk controller) in a storage apparatus, there are a loop (arbitrated loop) method and a fabric method.
The loop method is a connection method in which the initiator, the target and the like are sequentially connected in a loop. Since the loop method can connects multiple nodes without relatively expensive fibers, channels or switches, it is possible to economically construct a SAN. However, in the loop method, since all the nodes share one loop, the performance deteriorates as the number of nodes increases.
On the other hand, the fabric method refers to a network in which fiber channel switches are used or in which fiber channel switches are mutually connected. The fabric method is superior in extensibility because the port of the initiator and the port of the target are not directly connected. Furthermore, in comparison with the loop method in which multiple targets are loop-connected, a higher command processing capability can be expected because a command is transmitted only via a fabric device.
FIG. 5 illustrates an example of a structure of a storage apparatus in which the fabric method and the loop method are used being combined. A fabric device 100 illustrated in FIG. 5 includes fiber channel switches (FS's) that are mutually connected (not illustrated in FIG. 5), and the fabric device 100 relays commands issued from disk controllers 101 to disks 102 via the FS's. Groups of disks a1 to a3, disks b1 to b3, disks c1 to c3, and disks d1 to d3 in FIG. 5 are groups in which the disks are loop-connected. FIG. 5 illustrates an example in which three disks are connected to each loop.
On the other hand, each disk controller 101 is fabric-connected to each disk loop, and therefore, it is possible to easily issue a command from each disk controller to each disk loop.
Thus, the fabric method is a connection method superior in extensibility and performance. However, in the case of a storage apparatus with a large-scale structure, when a large number of commands are issued from multiple disk controllers, the command response deteriorates even though the fabric method is adopted. In the worst case, a command times out due to response delay, and disk abnormality is judged.
For example, there is a problem that, when a large number of commands are issued from the disk controllers 101 to the disks 102 beyond the performance of the disk d1 in FIG. 5 (see #1 in FIG. 5), the transfer rate between the fabric device 100 and the disk d1 decreases and the fabric device 100 cannot sufficiently process the commands, so that command processing is blocked (see #2 in FIG. 5).
As a measure for preventing the blockage of command processing in the fabric device 100 due to issue of a large number of commands, a method for restricting the number of commands which can be issued by the disk controller 101 at a time for each disk according to the performance of the disk is conceivable. The method is referred to as a restriction-according-to-disk-performance method. In the restriction-according-to-disk-performance method, when the number of commands exceeds the number of commands that can be issued by the disk controller 101 at a time, queuing of the commands is performed in the disk controller to avoid transmission of a large number of commands to the fabric device 100. It is because the performance differs among the disks 102 connected to the fabric device 100 that queuing of commands is performed for each disk. When a large number of commands are issued to a disk 102 with a low performance, response delay occurs at the stage of command processing in the disk 102. Therefore, in order to control the number of commands to be issued according to the performance of a disk, the restriction-according-to-disk-performance method sets the upper limit of the number of commands to be issued according to the performance of the disk 102 and controls the number of commands to be issued so that the number does not exceed the upper limit.
However, for example, when the structure of a storage apparatus is large-scaled and the number of disks 102 in each loop increases, as illustrated in FIG. 6, it becomes impossible to prevent blockage of command processing in the fabric device 100 by controlling the number of commands to be issued by the restriction-according-to-disk-performance method. As a result, the command response deteriorates. This is because, when the total number of the disks 102 connected to the fabric device 100 increases as the number of loop-connected disks 102 increases, the number of commands to be issued to a particular disk 102 increases to the extent that the fabric device 100 cannot perform processing the commands even though each disk controller 101 restricts, for each disk, the number of commands to be issued.